<?php
	namespace Admin\Controller;
	/**
	 * 后台文章控制器类
	 */
	class ArticleController extends BaseController {
		/**
		 * 文章控制器页面展示
		 */
		public function showList() {
			// 接收当前分页数
			$p = isset($_GET['p']) ? $_GET['p'] : 1;
			// 获取数据
			// 创建article模型对象
			$model = D('Article');
			
			// 分页开始
				// 获取文章记录总数
				$count = $model->getCount();
				// 创建分页对象
				$page = new \Think\Page($count,10);
				$page->rollPage = 7;		// 每页只显示5页
				$page->lastSuffix = false;
				$page->setConfig('prev', '上一页');
				$page->setConfig('next', '下一页');
				$page->setConfig('first', '首页');
				$page->setConfig('last', '尾页');
				// 获得分页字符串
				$pageStr = $page->show();
				// limit获取数据
				$data = $model->getArticleData($page->firstRow,$page->listRows);
			// 分页结束
			
			// 分配变量
			$this->assign('p',$p);
			$this->assign('count',$count);
			$this->assign('pageStr',$pageStr);			
			$this->assign('data', $data);
			// 展示模板
			$this->display();
		}
		
		/**
		 * 文章添加方法
		 */
		public function add() {
			// 获取所有的分类id的名字
			// 创建cate表对象
			$cate = D('Cate');
			// 调用方法
			$data = $cate->getCate();			
			// 分配变量
			$this->assign('data', $data);
			// 展示模板
			$this->display();
		}
		/**
		 * 处理文章添加方法
		 */
		public function dealAdd() {
			// 接收数据
			$post = I('post.');
			// 判断是否为空
			if(isEmpty($post)) {
				// 有为空的值
				$this->error('填写数据中不能为空');
			}
			// 接收文件数据
			$file = $_FILES['thumb'];
			// 创建文章article表模型对象
			$model = D('Article');
			$result = $model->addData($post, $file);
			if($result) {
				// 创建cate模型对象
				$cate = D('Cate');
				// 更新分类下的文章数
				$cate->updateArtNum($post['cate_pid']);
				$this->success('文章添加成功',U('add'));
			}else {
				$this->error('文章添加失败');
			}
		}
		/**
		 * 文章修改界面展示
		 */
		public function edit() {
			// 接收文章id数据
			$id = I('get.id');
			// 创建文章Article模型对象
			$model = D('Article');
			// 根据指定id获取文章数据
			$data = $model->getArticleById($id);
			// 创建cate表对象
			$cateObj = D('Cate');
			// 调用方法
			$cate = $cateObj->getCate();			
			// 分配变量
			$this->assign('cate', $cate);
			$this->assign('data', $data);
			// 展示模板
			$this->display();
		}
		/**
		 * 处理文章修改
		 */
		public function dealEdit() {
			// 接收数据
			$post = I('post.');
			$file = $_FILES['thumb'];
			
			// 判断是否为空
			if(isEmpty($post)) {
				// 有为空的值
				$this->error('填写数据中不能为空');
			}
			$model = D('Article');
			$result = $model->editArticle($post, $file);
			if($result) {
				$this->success('修改成功',U('showList'));
			}else {
				$this->error('修改发生未知错误');
			}
		}
		
		/**
		 * 逻辑删除单个文章记录
		 */
		public function logicDelete() {
			// 接收文章id
			$id = I('get.id');
			// 接收该文章的分类id
			$cate_pid = I('get.cate_pid');
			$model = D('Article');
			$result = $model->logicDelete($id);
			
			if($result) {
				// 创建cate模型对象
				$cate = D('Cate');
				// 更新分类下的文章数
				$cate->updateArtNum($cate_pid, 0);
				$this->success('删除成功,你还可以到回收站找回',U('showList'));
			}else {
				$this->error('删除发生未知错误');
			}
		}
		/**
		 * 回收站页面显示
		 */
		public function recycle() {
			// 接收当前分页数
			$p = isset($_GET['p']) ? $_GET['p'] : 1;
			// 获取数据
			// 创建article模型对象
			$model = D('Article');
			
			// 分页开始
				// 获取文章记录总数
				$count = $model->getCountDelete();
				// 创建分页对象
				$page = new \Think\Page($count,10);
				$page->rollPage = 7;		// 每页只显示5页
				$page->lastSuffix = false;
				$page->setConfig('prev', '上一页');
				$page->setConfig('next', '下一页');
				$page->setConfig('first', '首页');
				$page->setConfig('last', '尾页');
				// 获得分页字符串
				$pageStr = $page->show();
				// 获取已经逻辑limit获取数据
				$data = $model->getLogicArticle($page->firstRow,$page->listRows);
			// 分页结束
			
			// 分配变量
			$this->assign('p',$p);
			$this->assign('count',$count);
			$this->assign('pageStr',$pageStr);
			$this->assign('data',$data);
			$this->display();
		}
		/**
		 * 单个文章还原
		 */
		public function restore() {
			// 获取id
			$id = I('get.id');
			// 创建模型
			$model = D('Article');
			// 还原
			$result = $model->restory($id);
			if($result)  {
				// 还原成功
				$this->success('还原成功');
			}else {
				// 还原失败
				$this->error('还原发生未知错误');
			}
		}
		/**
		 * 彻底删除单个文章记录
		 */
		public function delete() {
			// 获取id
			$id = I('get.id');
			// 接收该文章的分类id
			$cate_pid = I('get.cate_pid');
			// 创建模型
			$model = D('Article');
			// 删除
			$result = $model->deleteData($id);
			if($result)  {
				// 删除成功
				// 创建cate模型对象
				$cate = D('Cate');
				// 更新分类下的文章数
				$cate->updateArtNum($cate_pid, 0);
				$this->success('删除成功');
			}else {
				// 删除失败
				$this->error('删除发生未知错误');
			}
		}
		
		/**
		 * 单个文章详情 
		 */
		public function single() {
			// 获取id数据
			$id = I('get.id');
			// 根据id获取内容
			$model = D('Article');
			$data = $model->getArticleById($id);
			$this->assign('data', $data);
			$this->display();
		}
		 
		 
		 
		 
		 
	}
